﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QLKS
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }
        public static bool ktdangnhap = false;
        public static string chucvu = "";
        public static string tendangnhap;

        /// <summary>
        /// Kiểm tra người dùng đăng nhập chưa, nếu đăng nhập rồi thì cho phép thao tác, nếu chưa thì không cho phép thao tác
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainForm_Load(object sender, EventArgs e)
        {
            if (ktdangnhap == false)
            {
                tsdangxuat.Enabled = false;
                tstaotaikhoan.Enabled = false;
                tsdoimatkhau.Enabled = false;
                tabphong.Enabled = false;
                tabkhachhang.Enabled = false;
                tabthuetraphong.Enabled = false;
                tabthaydoiquydinh.Enabled = false;
            }
            if (ktdangnhap == true)
            {
                tsdangxuat.Enabled = true;
                tsdoimatkhau.Enabled = true;
                tabphong.Enabled = true;
                tabkhachhang.Enabled = true;
                tabthuetraphong.Enabled = true;
                if (chucvu == "nhanvien")
                {
                    tstaotaikhoan.Enabled = false;
                    btcapnhatphong.Enabled = false;
                    btcapnhatloaiphong.Enabled = false;
                    btcapnhatkh.Enabled = false;
                    btcapnhatloaikh.Enabled = false;
                    tabthaydoiquydinh.Enabled = false;
                }
                else
                {
                    tstaotaikhoan.Enabled = true;
                    btcapnhatphong.Enabled = true;
                    btcapnhatloaiphong.Enabled = true;
                    btcapnhatkh.Enabled = true;
                    btcapnhatloaikh.Enabled = true;
                    tabthaydoiquydinh.Enabled = true;
                    radioButton1.Checked = true;
                }
            }
        }

        /// <summary>
        /// Mở form Đăng nhập
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsdangnhap_Click(object sender, EventArgs e)
        {
            fDangNhap fdn = new fDangNhap();
            fdn.ShowDialog();
            MainForm_Load(sender, e);
        }

        /// <summary>
        /// Đăng xuất người dùng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsdangxuat_Click(object sender, EventArgs e)
        {
            ktdangnhap = false;
            MainForm_Load(sender, e);
        }

        /// <summary>
        /// Mở form Tạo tài khoản
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tstaotaikhoan_Click(object sender, EventArgs e)
        {
            fTaoTaiKhoan fttk = new fTaoTaiKhoan();
            fttk.ShowDialog();
        }

        /// <summary>
        /// Mở form Đổi mật khẩu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsdoimatkhau_Click(object sender, EventArgs e)
        {
            fDoiMatKhau fdmk = new fDoiMatKhau();
            fdmk.Tendangnhap = tendangnhap;
            fdmk.ShowDialog();
        }

        /// <summary>
        /// Thoát khỏi chương trình
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsthoat_Click(object sender, EventArgs e)
        {
            Application.ExitThread();
            Application.Exit();
        }

        /// <summary>
        /// Mở form Danh sách phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btdanhsachphong_Click(object sender, EventArgs e)
        {
            fDanhSachPhong.Instance().MdiParent = this;
            fDanhSachPhong.Instance().Focus();
            fDanhSachPhong.Instance().Show();
            this.LayoutMdi(MdiLayout.Cascade);
        }

        /// <summary>
        /// Mở form Cập nhật phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btcapnhatphong_Click(object sender, EventArgs e)
        {
            fCapNhatPhong fcnp = new fCapNhatPhong();
            fcnp.Show();
        }

        /// <summary>
        /// Mở form Danh sách loại phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btdanhsachloaiphong_Click(object sender, EventArgs e)
        {
            this.LayoutMdi(MdiLayout.Cascade);
            fDanhSachLoaiPhong.Instance().MdiParent = this;
            fDanhSachLoaiPhong.Instance().Focus();
            fDanhSachLoaiPhong.Instance().Show();
            this.LayoutMdi(MdiLayout.Cascade);
        }

        /// <summary>
        /// Mở form Cập nhật loại phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btcapnhatloaiphong_Click(object sender, EventArgs e)
        {
            fCapNhatLoaiPhong fcnld = new fCapNhatLoaiPhong();
            fcnld.Show();
        }

        /// <summary>
        /// Mở form Danh sách khách hàng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btdanhsachkh_Click(object sender, EventArgs e)
        {
            fDanhSachKhachHang.Instance().MdiParent = this;
            fDanhSachKhachHang.Instance().Focus();
            fDanhSachKhachHang.Instance().Show();
            fDanhSachKhachHang.Instance().MinimumSize = new Size(1000, 0);
            this.LayoutMdi(MdiLayout.Cascade);
        }

        /// <summary>
        /// Mở form Cập nhật khách hàng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btcapnhatkh_Click(object sender, EventArgs e)
        {
            fCapNhatKhachHang fcnkh = new fCapNhatKhachHang();
            fcnkh.Show();
        }

        /// <summary>
        /// Mở form Danh sách loại khách hàng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btdanhsachloaikh_Click(object sender, EventArgs e)
        {
            fDanhSachLoaiKhach.Instance().MdiParent = this;
            fDanhSachLoaiKhach.Instance().Focus();
            fDanhSachLoaiKhach.Instance().Show();
            this.LayoutMdi(MdiLayout.Cascade);
        }

        /// <summary>
        /// Mở form Cập nhật loại khách hàng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btcapnhatloaikh_Click(object sender, EventArgs e)
        {
            fCapNhatLoaiKhach fcnlk = new fCapNhatLoaiKhach();
            fcnlk.Show();
        }

        /// <summary>
        /// Mở form Thuê phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btthuephong_Click(object sender, EventArgs e)
        {
            fThuePhong ftp = new fThuePhong();
            ftp.Show();
        }

        /// <summary>
        /// Mở form Trả phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bttraphong_Click(object sender, EventArgs e)
        {
            fTraPhong ftp = new fTraPhong();
            ftp.Show();
        }

        /// <summary>
        /// Mở form Thông tin khách sạn
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void thongtinkhachsanToolStripMenuItem_Click(object sender, EventArgs e)
        {
            fThongTinKhachSan fttks = new fThongTinKhachSan();
            fttks.Show();
        }

        /// <summary>
        /// Mở form Thông tin người dùng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void thongtinnguoidungToolStripMenuItem_Click(object sender, EventArgs e)
        {
            fThongTinNguoiDung fttnd = new fThongTinNguoiDung();
            fttnd.Show();
        }

        /// <summary>
        /// Mở form Thông tin phần mềm
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void thongtinphanmemToolStripMenuItem_Click(object sender, EventArgs e)
        {
            fThongTinPhanMem fttpm = new fThongTinPhanMem();
            fttpm.Show();
        }

        /// <summary>
        /// Mở form Báo cáo doanh thu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btbaocaodoanhthu_Click(object sender, EventArgs e)
        {
            fBaoCaoDoanhThu fbcdt = new fBaoCaoDoanhThu();
            fbcdt.Show();
        }

        /// <summary>
        /// Mở form In danh sách phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btindanhsachphong_Click(object sender, EventArgs e)
        {
            fInDanhSachPhong rpdsp = new fInDanhSachPhong();
            rpdsp.ShowDialog();
        }

        /// <summary>
        /// Mở form In danh sách khách hàng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btindanhsachkhachhang_Click(object sender, EventArgs e)
        {
            fInDanhSachKhachHang rpdskh = new fInDanhSachKhachHang();
            rpdskh.ShowDialog();
        }

        /// <summary>
        /// Lấy thông tin số lượng khách tối đa của mỗi phòng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            XuLyThayDoiThamSo xltdts = new XuLyThayDoiThamSo();
            tbhientai.Text = xltdts.LayKhachToiDa();
            tbmoi.Clear();
        }

        /// <summary>
        /// Lấy thông tin số lượng khách không tính phụ thu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            XuLyThayDoiThamSo xltdts = new XuLyThayDoiThamSo();
            tbhientai.Text = xltdts.LaySoKhachKhongPhuThu();
            tbmoi.Clear();
        }

        /// <summary>
        /// Lấy thông tin tỷ lệ phụ thu đối với khách nước ngoài
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void radioButton4_CheckedChanged(object sender, EventArgs e)
        {
            XuLyThayDoiThamSo xltdts = new XuLyThayDoiThamSo();
            tbhientai.Text = xltdts.LayPhuThu();
            tbmoi.Clear();
        }

        /// <summary>
        /// Lấy thông tin tỷ lệ phụ thu của khách thứ N
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            XuLyThayDoiThamSo xltdts = new XuLyThayDoiThamSo();
            tbhientai.Text = xltdts.LayPhuThuNuocNgoai();
            tbmoi.Clear();
        }

        /// <summary>
        /// Lưu thay đổi về tham số
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btxacnhan_Click(object sender, EventArgs e)
        {
            XuLyThayDoiThamSo xltdts = new XuLyThayDoiThamSo();
            if (radioButton1.Checked == true)
            {
                if (xltdts.DatKhachToiDa(tbmoi.Text) == false)
                    MessageBox.Show("Thay đổi số lượng khách tối đa thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                else
                {
                    MessageBox.Show("Thay đổi số lượng khách tối đa thành công", "Thông báo", MessageBoxButtons.OK);
                    radioButton1_CheckedChanged(sender, e);
                }
            }
            else if (radioButton2.Checked == true)
            {
                if (xltdts.DatSoKhachKhongPhuThu(tbmoi.Text) == false)
                    MessageBox.Show("Thay đổi số lượng khách không phụ thu thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                else
                {
                    MessageBox.Show("Thay đổi số lượng khách không phụ thu thành công", "Thông báo", MessageBoxButtons.OK);
                    radioButton2_CheckedChanged(sender, e);
                }
            }
            else if (radioButton3.Checked == true)
            {
                if (xltdts.DatPhuThu(tbmoi.Text) == false)
                    MessageBox.Show("Thay đổi phụ thu thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                else
                {
                    MessageBox.Show("Thay đổi phụ thu thành công", "Thông báo", MessageBoxButtons.OK);
                    radioButton3_CheckedChanged(sender, e);
                }
            }
            else
            {
                if (xltdts.DatPhuThuNuocNgoai(tbmoi.Text) == false)
                    MessageBox.Show("Thay đổi phụ thu khách nước ngoài thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                else
                {
                    MessageBox.Show("Thay đổi phụ thu khách nước ngoài thành công", "Thông báo", MessageBoxButtons.OK);
                    radioButton4_CheckedChanged(sender, e);
                }
            }
        }

        /// <summary>
        /// Không nhận ký tự là chữ, chỉ nhận ký tự là số
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbmoi_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }
    }
}
